using System.Collections.Generic;
using NHibernate;
using PortalFolia.Data.Objetos;
using PortalFolia.IRepositorio;

namespace PortalFolia.Repositorio
{
    
    public class RepositorioVendas : IRepositorioVendas
    {
        public Vendas Inserir(Vendas vendas)
        {
            GerenciadorBD.Instance.SessaoAtual().Save(vendas);
            return vendas;
        }

        public Vendas Atualizar(Vendas vendas)
        {
            Vendas tmpVendas = ObterPorId(vendas.VendaId);

            // Atribuicao dos valores do objeto da memoria para o objeto obtido no banco de dados

            GerenciadorBD.Instance.SessaoAtual().Update(tmpVendas);
            return tmpVendas;
        }

        public void Excluir(Vendas vendas)
        {
            GerenciadorBD.Instance.SessaoAtual().Delete(vendas);
        }

        public IList<Vendas> ObterTodos()
        {
            ICriteria criteria = GerenciadorBD.Instance.SessaoAtual().CreateCriteria(typeof(Vendas));
            return criteria.List<Vendas>() as List<Vendas>;
        }

        public Vendas ObterPorId(int id)
        {
            return GerenciadorBD.Instance.SessaoAtual().Get<Vendas>(id);
        }
    }
}